The present invention relates to code synchronizing apparatus for synchronizing a local pseudo-random binary-sequence code generator with signals of a pseudo-random binary-sequence carried on incoming signals from a remote source.
In various equipments, and particularly in the technique of spread-spectrum communications, it is required to detect a given pseudo-random binary-sequence carried on incoming signals and to synchronize a local code sequence generator so that the local generator will provide an identical code sequence. Reasons for doing this, and known arrangements for the purpose, are well reviewed in papers by R. L. Harris, N. G. Davies and C. R. Cahn, published in "Spread Spectrum Communications" (AGARD Lecture Series No. 58) published by the North Atlantic Treaty Organization, July 1973, particularly in pages 3-1 to 3-21 of the lecture by R. L. Harris and in pages 4-17 to 4-24 of the lecture by N. G. Davies. In many cases the incoming signals will have a very poor signal-to-noise ratio and correlation over a large number of code bit periods will be required. The bit-rate of the incoming signals may be subject to an unknown frequency error or doppler shift, which may well be sufficient to defeat attempts to improve the signal-to-noise ratio to the extent required by straightforward arrangements for correlating the signals over a sufficiently long time interval.
According to the present invention there is provided code synchronizing apparatus including means for obtaining a sequence of samples of an incoming signal and a sequence of local code signals from a local code generator, means for correlating the sequence of samples with sequences of local code signals offset by different integral numbers of bit-periods from a sequence of local code signals produced while the incoming signals were being sampled, means for repeating these actions successively and adding together the correlation values obtained for each offset from a plurality of sampling and correlating actions, means for identifying the offset which produces the maximum correlation total, and means for correcting the timing of the local code generator by an amount dependent on the magnitude of the offset so identified.
The length of each sequence correlated should be limited to ensure that anticipated frequency errors or doppler shifts will not have a serious effect, but the results of a comparatively large number of correlations are summed together to get a desired improvement in signal-to-noise ratio.
According to a preferred form of the invention, the correlation means comprises means for correlating each of a plurality of consecutive subsequences of n signal samples with all possible subsequences of n binary digits and storing the results of these correlations, means for deriving the correlation between a local code sequence and a signal sample sequence by reference to and summing together stored correlation results relating to subsequences of binary digits occurring in the local code sequence, and means for repeating the reference and summation steps for each offset sequence.
Theoretically the optimum subsequence length n is the nearest integral value to a solution of the equation EQU L=2.sup.n [1+0.7n(n-1)] (1)
where L is the length of a complete cycle of the pseudo-random binary sequence to be used. This preferred technique reduces the number of additions required by a factor approximately equal to n. The optimum value of n minimizes the number of additions needed, but any convenient value within a range of about +30% from the optimum may be used without greatly increasing the number of additions required.
The number of additions required to correlate n sample values with n binary digits is n-1. When each sequence of length S is treated as a series of N=S/n subsequences, and each subsequence is correlated with each of the 2.sup.n possible permutations of n binary digits, the total number of additions required is n.multidot.2.sup.n (n-1). Each reference and summation process requires N-1 additions to form the correlation between one sample sequence and one local code sequence. For each sample sequence this is done for each of L local code sequences with different offsets from a local code sequence produced simultaneously with the sampling of the incoming signals, requiring L(N-1) additions altogether. Thus the total number of additions required to derive the correlations needed for each sample sequence is EQU L(N-1)+N.multidot.2.sup.n (n-1) (2)
To correlate a sample sequence of length S directly with L offsets of a local code sequence of length S would require L(S-1) additions. Equation (1) is derived by putting N=S/n in the expression (2), differentiating with respect to n, setting the derivative equal to zero and using the approximation log .sub.e 2=0.7.